package object;

/**
 * @Author Stringzhua
 * @Date 2024/2/5 11:04
 * description:类与对象[OOP]
 * 引入的根本原因,现有的技术不能完美的解决新的需求
 */
public class Object01 {
    public static void main(String[] args) {
        /*
         * 张老太养了两只猫猫:
         * 一只名字叫小白,今年3岁，白色。体重,爱好
         * 还有一只叫小花,今年18岁,花色。
         * 请编写一个程序，当用户输入小猫的名字时就显示该猫的名字，年龄，颜色。
         * 如果用户输入的小猫名错误则显示 张老太没有这只猫猫
         *  单独变量来解决==>不利于数据的管理(你把一只猫的信息拆解)
         * */
        //第一只猫信息
//        String cat1Name = "小白";
//        int cat1Age = 3;
//        String cat1Color = "白色";
//        //第二只猫信息
//        String cat2Name = "小花";
//        int cat2Age = 18;
//        String cat2Color = "花色";
//
//        //数组=>数组来存
//        //(1)数据类型体现不出来
//        //(2)只能通过cat[1]下标来取,造成变量名和内容的对应关系不明确
//        //(3)不能体现猫的行为
//        //第一只猫的信息
//        String[] cat1={"小白","3","白色"};
//        String[] cat2={"小花","18","花色"};

        //使用OOP面向对象解决
        //实例化一只猫[创建一只猫](猫对象)
        Cat cat1=new Cat();
        cat1.name="小白";
        cat1.age=3;
        cat1.color="白色";
        cat1.weight=10;
        //创建第二只猫(猫对象)
        Cat cat2=new Cat();
        cat2.name="小花";
        cat2.age=100;
        cat2.color="花色";
        cat2.weight=20;

        //怎么访问对象的属性
        System.out.println("第一只猫信息" + cat1.name+" "+cat1.age+" "+cat1.color+" "+cat1.weight);
        System.out.println("第二只猫信息" + cat2.name+" "+cat2.age+" "+cat2.color+" "+cat2.weight);
    }
}

//使用面向对象的方式来解决养猫问题
//定义一个猫类 Cat->自定义的数据类型
class Cat{
    //属性/成员变量
    String name;//名字
    int age;
    String color;
    double weight;
}